home
***
CD-ROM
|
disk
|
FTP
|
other
***
search
/
PC World Komputer 2010 April
/
PCWorld0410.iso
/
hity wydania
/
Bank smakow
/
BankSmakow.air
/
BankSmakow.swf
/
scripts
/
com
/
makingwaves
/
sql
/
TransactionDatabaseManager.as
< prev
Wrap
Text File
|
2009-12-16
|
6KB
|
171 lines
package com.makingwaves.sql
{
import com.makingwaves.config.Configuration;
import flash.data.SQLConnection;
import flash.data.SQLResult;
import flash.errors.SQLError;
import flash.events.SQLErrorEvent;
import flash.events.SQLEvent;
import flash.filesystem.File;
import flash.utils.Dictionary;
import mx.core.Application;
public class TransactionDatabaseManager
{
private var initComplete:Boolean = false;
private var _connection:SQLConnection;
public function TransactionDatabaseManager()
{
super();
var _loc1_:File = File.applicationStorageDirectory.resolvePath(Application.application.name + ".db");
_connection = new SQLConnection();
_connection.addEventListener(SQLEvent.OPEN,onDatabaseOpen);
_connection.addEventListener(SQLErrorEvent.ERROR,errorHandler);
_connection.open(_loc1_);
}
public function recordUpdate(param1:int) : void
{
var _loc2_:Configuration = Configuration.getInstance();
var _loc3_:StatementExecutor = new StatementExecutor(_connection);
var _loc4_:Dictionary;
(_loc4_ = new Dictionary())[":sourceId"] = param1;
_loc3_.execute(_loc2_.addUpdateSQL,_loc4_);
}
private function errorHandler(param1:SQLErrorEvent) : void
{
trace("Error code:",param1.error.errorID);
trace("Details:",param1.error.message);
}
private function onDatabaseOpen(param1:SQLEvent) : void
{
var s:String = null;
var statement:String = null;
var event:SQLEvent = param1;
var config:Configuration = Configuration.getInstance();
var executor:StatementExecutor = new StatementExecutor(_connection);
for each(s in config.createStatements)
{
executor.execute(s);
}
for each(statement in config.alterStatements)
{
try
{
executor.execute(statement);
}
catch(error:SQLError)
{
}
}
}
private function checkRecipe(param1:String) : Boolean
{
var _loc2_:Configuration = Configuration.getInstance();
var _loc3_:StatementExecutor = new StatementExecutor(_connection);
var _loc4_:Dictionary;
(_loc4_ = new Dictionary())[":name"] = param1;
var _loc5_:SQLResult;
if((_loc5_ = _loc3_.execute(_loc2_.checkRecipeSQL,_loc4_)).data != null)
{
return false;
}
return true;
}
public function commitTransaction() : void
{
if(_connection.inTransaction)
{
_connection.commit();
}
}
public function addProduct(param1:int, param2:String, param3:int) : void
{
var _loc4_:Configuration = Configuration.getInstance();
var _loc5_:StatementExecutor = new StatementExecutor(_connection);
var _loc6_:Dictionary;
(_loc6_ = new Dictionary())[":id"] = param1;
_loc6_[":name"] = param2;
_loc6_[":categoryId"] = param3;
_loc5_.execute(_loc4_.addProductSQL,_loc6_);
}
public function addRecipe(param1:String, param2:String, param3:String, param4:Array) : void
{
var _loc5_:Configuration = null;
var _loc6_:StatementExecutor = null;
var _loc7_:Dictionary = null;
var _loc8_:SQLResult = null;
var _loc9_:int = 0;
var _loc10_:int = 0;
var _loc11_:Dictionary = null;
if(checkRecipe(param1))
{
_loc5_ = Configuration.getInstance();
_loc6_ = new StatementExecutor(_connection);
(_loc7_ = new Dictionary())[":name"] = param1;
_loc7_[":ingredients"] = param2;
_loc7_[":preparation"] = param3;
_loc9_ = (_loc8_ = _loc6_.execute(_loc5_.addRecipeSQL,_loc7_)).lastInsertRowID;
for each(_loc10_ in param4)
{
(_loc11_ = new Dictionary())[":recipeId"] = _loc9_;
_loc11_[":productId"] = _loc10_;
_loc6_.execute(_loc5_.addRecipeIngredientSQL,_loc11_);
}
}
}
public function getLastUpdate(param1:int) : Date
{
var _loc2_:Configuration = Configuration.getInstance();
var _loc3_:StatementExecutor = new StatementExecutor(_connection);
var _loc4_:Dictionary;
(_loc4_ = new Dictionary())[":sourceId"] = param1;
var _loc5_:Array;
if((_loc5_ = _loc3_.execute(_loc2_.getUpdateSQL,_loc4_).data) != null && _loc5_.length == 1)
{
return _loc5_[0].date;
}
return new Date(0);
}
public function closeConnection() : void
{
_connection.close();
}
public function rollbackTransaction() : void
{
if(_connection.inTransaction)
{
_connection.rollback();
}
}
public function startTransaction() : void
{
_connection.begin();
}
public function addCategory(param1:int, param2:String) : void
{
var _loc3_:Configuration = Configuration.getInstance();
var _loc4_:StatementExecutor = new StatementExecutor(_connection);
var _loc5_:Dictionary;
(_loc5_ = new Dictionary())[":id"] = param1;
_loc5_[":name"] = param2;
_loc4_.execute(_loc3_.addCategorySQL,_loc5_);
}
}
}